import { createRouter, createWebHistory } from 'vue-router'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import { useLoginStore } from '@/store/Login'
import { constantRoutes } from './defaultRoutes'
import { Name } from '@/config'
// router/vue_pbulic.ts
NProgress.configure({
  easing: 'ease', // 动画方式
  speed: 500, // 递增进度条的速度
  showSpinner: false, // 是否显示加载 icon
  trickleSpeed: 200, // 自动递增间隔
  minimum: 0.3 // 初始化时的最小百分比
})

const router = createRouter({
  history: createWebHistory(),
  routes: constantRoutes
})

router.beforeEach((to, from, next) => {
  NProgress.start() // 进度条开始
  const store = useLoginStore()
  if (!store.user.token && to.path !== '/login') {
    next({ name: 'Login' })
    return
  }
  next() // 如果不传参数就会重新执行路由拦截，重新进到这里
})

router.afterEach(() => {
  if (document.title !== Name) {
    document.title = Name
  }
  NProgress.done() // 进度条结束
})

/**
 * @return 请注意：当后台返回的路由与前端写的路由一样时，会显示前端路由
 * **/

export default router
